#!/bin/sh

MODNAME=abcsp2df1
MODCHAIN=mod_abcsp2df1

add_chain() {
  /sbin/iptables -N $MODCHAIN
  /sbin/iptables -t nat -N $MODCHAIN
  if [ "$MOD_ABCSP2DF1_CSP_ENABLED" == "1" ]; then 
    /sbin/iptables -A $MODCHAIN -p tcp --dport $MOD_ABCSP2DF1_PORT -j ACCEPT
    /sbin/iptables -t nat -A $MODCHAIN -p tcp --dport $MOD_ABCSP2DF1_PORT -j ACCEPT
  fi
  if [ "$MOD_ABCSP2DF1_CIP_ENABLED" == "1" ]; then 
    /sbin/iptables -A $MODCHAIN -p tcp --dport $MOD_ABCSP2DF1_CIP_PORT -j ACCEPT
    /sbin/iptables -A $MODCHAIN -p udp --dport $MOD_ABCSP2DF1_CIP_PORT -j ACCEPT
    /sbin/iptables -t nat -A $MODCHAIN -p tcp --dport $MOD_ABCSP2DF1_CIP_PORT -j ACCEPT
    /sbin/iptables -t nat -A $MODCHAIN -p udp --dport $MOD_ABCSP2DF1_CIP_PORT -j ACCEPT
  fi
  /sbin/iptables -A in_mod -j $MODCHAIN
  /sbin/iptables -t nat -A pre_mod -j $MODCHAIN
}

del_chain() {
  /sbin/iptables -D in_mod -j $MODCHAIN
  /sbin/iptables -F $MODCHAIN
  /sbin/iptables -X $MODCHAIN
  /sbin/iptables -t nat -D pre_mod -j $MODCHAIN
  /sbin/iptables -t nat -F $MODCHAIN
  /sbin/iptables -t nat -X $MODCHAIN
}

case "$1" in
  start|restart)
	. /opt/$MODNAME/etc/settings
	if [ "$1" = "restart" ]; then
	    echo -n "Restarting module $MODNAME: "
	    killall abcsp2df1d 2> /dev/null
            del_chain 2> /dev/null
	else
	    echo -n "Starting module $MODNAME: "
	fi
	if [ "$MOD_ABCSP2DF1_ENABLED" != "1" ]; then
	    echo "skipped"
	    exit 0
	fi
        add_chain 2> /dev/null
        export MAC_ADDRESS=`mac`
        export PRODUCT_NAME=`status -v sys | awk '/Product Name/ {print $4}'`
        export SERIAL_NUMBER=`status -v sys | awk '/Serial Number/ {print $4}'`
	/opt/$MODNAME/bin/abcsp2df1d &
	RETVAL=$?
	if [ $RETVAL = 0 ]; then echo "done"; else echo "failed"; fi
	exit $RETVAL
	;;
  stop)
	echo -n "Stopping module $MODNAME: "
	killall abcsp2df1d 2> /dev/null
        del_chain 2> /dev/null
	RETVAL=$?
	if [ $RETVAL = 0 ]; then echo "done"; else echo "failed"; fi
	exit $RETVAL
	;;
  status)
	echo -n "Module $MODNAME is "
	killall -0 abcsp2df1d 2> /dev/null
	RETVAL=$?
	if [ $RETVAL = 0 ]; then echo "running"; else echo "stopped"; fi
	exit $RETVAL
	;;
  defaults)
	cp /opt/$MODNAME/etc/defaults /opt/$MODNAME/etc/settings 2> /dev/null
	;;
  *)
	echo "Usage: $0 {start|stop|restart|status|defaults}"
	exit 1
esac
